package net.inteidee.login;

import java.util.LinkedList;
import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.inject.Named;
import javax.persistence.metamodel.ListAttribute;

import net.inteidee.bean.businessinterface.GenericDao;
import net.inteidee.bean.entity.Applicazione;
import net.inteidee.bean.entity.Ruolo;




/**
 * Classe che gestisce le Applicazioni
 * @author Rino
 *
 */

@ManagedBean(name="handlerApplicazione")
@SessionScoped
public class ApplicazioneHandler {

	
	List<Applicazione> listaApplicazioni;
	Applicazione applicazione;
	

	@EJB(beanName="ApplicazioneDaoImpl")
	GenericDao applicazioneDao;
	
	public ApplicazioneHandler() {
		// TODO Auto-generated constructor stub
		
		applicazione = new Applicazione();
		listaApplicazioni = new LinkedList<Applicazione>();

		
	}
	
	public void addApplicazione(){
		
		
		applicazioneDao.save(applicazione);
		applicazione = new Applicazione();


	}
	
	public void updateApplicazione(){
		
		applicazioneDao.update(applicazione);
	}
	
	public void deleteApplicazione(Applicazione applicazione){
		
			applicazioneDao.delete(applicazione);		
	}
	
	/**
	 * Cerca tutte le applicazioni presenti sul DB e mi reinderizza a visualizzaApplicazioni
	 * @return
	 */
	public String findAll(){

		listaApplicazioni = applicazioneDao.findAll();
		return "visualizzaApplicazioni";
	}

	/**
	 * Metodo che permette la navigazione da Visualizza Utenti a Modifica Utento
	 * @return la stringa che permette lo switch
	 */
	public String visualizzaToModifica(long idApplicazione){
		
		this.applicazione = applicazioneDao.find(idApplicazione);
		return "modificaApplicazione";
	}
	

	public String selezionaApplicazioni(){
		
		listaApplicazioni = applicazioneDao.findAll();
		return "visualizzaRuoli";
		
	}

	public List<Applicazione> getListaApplicazioni() {
		return listaApplicazioni;
	}

	public void setListaApplicazioni(List<Applicazione> listaApplicazioni) {
		this.listaApplicazioni = listaApplicazioni;
	}

	public Applicazione getApplicazione() {
		return applicazione;
	}

	public void setApplicazione(Applicazione applicazione) {
		this.applicazione = applicazione;
	}
	
	

	
	
	
	
	
}
